package com.zzu.view.activity;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.zzu.R;
import com.zzu.model.bean.User;
import com.zzu.presenter.presenter.UserPresenter;
import com.zzu.presenter.impl.UserPresenterImpl;
import com.zzu.utils.AppStorage;
import com.zzu.view.view.UserResponseView;

import butterknife.BindView;
import butterknife.ButterKnife;


// 登录页面
public class LoginActivity extends Activity {

    private final String TAG = LoginActivity.class.getName();

    @BindView(R.id.et_login_tel)
    EditText et_login_tel;
    @BindView(R.id.et_login_password)
    EditText et_login_password;
    @BindView(R.id.bt_login_register)
    Button bt_login_register;
    @BindView(R.id.bt_login_login)
    Button bt_login_login;

    ProgressDialog dialog = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.login_acitivity);

        // 初始化控件
        //ButterKnife和当前activity绑定
        ButterKnife.bind(this);

        // 初始化监听
        initListener();
    }

    private void initListener() {
        // 注册按钮的点击事件处理,跳转到注册页面
        bt_login_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                register();
            }
        });

        // 登录按钮的点击事件处理
        bt_login_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                //显示ProgressDialog
//                dialog = ProgressDialog.show(LoginActivity.this, "提示", "正在加载中...");
//                dialog.setCancelable(true);
                login();
            }
        });
    }

    // 登录按钮的页面逻辑处理
    private void login() {
        // 1 获取输入的用户名和密码
        final String loginTel = et_login_tel.getText().toString();
        final String loginPassword = et_login_password.getText().toString();

        // 2 校验输入的用户名和密码
        if(TextUtils.isEmpty(loginTel) || TextUtils.isEmpty(loginPassword)) {
            Toast.makeText(LoginActivity.this, "输入的用户名或密码不能为空", Toast.LENGTH_SHORT).show();
            return;
        }

        //通过手机号和密码判断登录是否成功
        UserPresenter userPresenter = new UserPresenterImpl(this,new UserResponseView<Boolean>() {
            @Override
            public void onResponse(Boolean response) {
                if (response) {
                    // 登陆成功将用户的信息保存到内存中
                    saveUserInfo(loginTel);
                    // 提示登录成功
                    Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    //请求成功跳转到主页面
                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                    startActivity(intent);
//                    //移除ProgressDialog
//                    dialog.dismiss();
                    finish();
                } else {
                    //登录失败
                    //移除ProgressDialog
//                    dialog.dismiss();
                    Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
                }
            }
        });
        userPresenter.login(loginTel,loginPassword);
    }

    //将用户的信息保存到内存中
    private void saveUserInfo(String tel) {
        new UserPresenterImpl(this,new UserResponseView<User>() {
            @Override
            public void onResponse(User user) {
                //将用户信息保存到内存中
                AppStorage.saveUserInfo(user);
//                Log.i(TAG,"用户的信息："+user);
            }
        }).getUserByTel(tel);

    }

    // 注册的业务逻辑处理，跳转到注册页面
    private void register() {
        Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
        startActivity(intent);
    }
}
